<?php
namespace PsiFramework\Applications\DefaultApp\Classes\Model;

import("Classes.Model.Object");
import("Classes.Util.UI.LanguageManager");

use \PsiFramework\Classes\Model\Object;
use \PsiFramework\Classes\Util\UI\LanguageManager;

/**
 * PsiFramework
 * Php Simple Framework
 *
 * @author Rémi San
 * @version beta
 */

/**
 * The Trace class describes a browsing trace
 *
 * @package Model
 */
class Trace extends Object
{

    protected /*int*/    $_id ;
    protected /*IUser*/  $_user ;
    protected /*string*/ $_url ;
    protected /*string*/ $_action ;
    protected /*string*/ $_application ;
    protected /*Date*/   $_time ;

    /**
     * Trace constructor
     *
     * @param int    $id          the id
     * @param IUser  $user        the user
     * @param string $url         the url to trace
     * @param string $action      the action to trace
     * @param string $application the action to trace
     * @param Date   $time        the time to trace
     * 
     * @return Trace
     */
    public function __construct(
        /*int*/ $id=null,
        /*IUser*/ $user=null,
        /*string*/ $url=null,
        /*string*/ $action=null,
        /*string*/ $application=null,
        /*Date*/ $time=null
    )
    {
        $this->_id = $id ;
        $this->_user = $user;
        $this->_url = $url ;
        $this->_action = $action ;
        $this->_application = $action ;
        $this->_time = $time ;
    }

    /**
     * Getter for the member variable $id
     *
     * @return     int    the id of the gender
     */
    public function getId()
    {
        return $this->_id ;
    }

    /**
     * Setter for the member variable $id
     *
     * @param int $id the id
     * 
     * @return void
     */
    public function setId($id)
    {
        $this->_id = $id ;
    }

    /**
     * Getter for the member variable $user
     *
     * @return IUser the user
     */
    public function getUser()
    {
        return $this->_user ;
    }

    /**
     * Setter for the member variable $user
     *
     * @param IUser $user the user
     * 
     * @return void 
     */
    public function setUser($user)
    {
        $this->_user = $user ;
    }
    
    /**
     * Getter for the member variable $url
     *
     * @return string the url
     */
    public function getUrl()
    {
    	return $this->_url ;
    }
    
    /**
     * Setter for the member variable $url
     *
     * @param string $url the url
     *
     * @return void
     */
    public function setUrl($url)
    {
    	$this->_url = $url ;
    }
    
    /**
     * Getter for the member variable $action
     *
     * @return string the action
     */
    public function getAction()
    {
    	return $this->_action ;
    }
    
    /**
     * Setter for the member variable $action
     *
     * @param string $action the action
     *
     * @return void
     */
    public function setAction($action)
    {
    	$this->_action = $action ;
    }
    
    /**
     * Getter for the member variable $application
     *
     * @return string the application
     */
    public function getApplication()
    {
    	return $this->_application ;
    }
    
    /**
     * Setter for the member variable $application
     *
     * @param string $application the application
     *
     * @return void
     */
    public function setApplication($application)
    {
    	$this->_application = $application ;
    }
    
    /**
     * Getter for the member variable $time
     *
     * @return string the time
     */
    public function getTime()
    {
    	return $this->_time ;
    }
    
    /**
     * Setter for the member variable $time
     *
     * @param string $time the time
     *
     * @return void
     */
    public function setTime($time)
    {
    	$this->_time = $time ;
    }

    /**
     * The toString function
     *
     * @return string
     */
    public function toString()
    {
        return $this->_url;
    }
}

